A major objective of the present invention is to increase a user's ability to tailor automated workload management to meet the user's needs. The computing resources required by software workloads can vary considerably over time. Providing sufficient resources to each workload full time to handle occasional peaks can be wasteful. Dynamic workload management shifts computing resources among workloads on an as-needed basis; as a result, workload requirements can be met with fewer total resources and, thus, at lower cost.
Workload management software automatically reallocates resources in accordance with “management policies” designed to optimize the value of the computer system to the user. The policies can provide a great deal of flexibility for a user to determine how resources are to be allocated and what factors should be taken into account.
Large computer systems are often characterized by a container hierarchy. For example, a data center can include several server complexes, each complex may have several hard partitions, and each hard partition may be divided into virtual partitions or virtual machines. In such a context, there can be restrictions on some inter-container transfers of resources. These restrictions can vary by type; for example, rights to use processors are more readily transferred than the processors themselves. In any event, container-related constraints of resource allocation must be taken into account by a workload manager.
A simple utilization-based policy calls for shifting resources from workloads with lower percentage utilization of a resource to workloads with higher percentage utilizations. However, such a policy can unduly starve low-utilization workloads. This problem with starvation can be alleviated using policies that set minimum and maximum resource levels for workloads. However, this means an idle workload may get more resources than it needs, while a workload suffering high demand is throttled by a lack of the computing resources it needs. In addition, a continuously high-utilization workload can “pin” a low-utilization workload against the latter's minimum; while the minimum may prevent “starvation”, the sharing of resources may not be optimal from the user's perspective.
“Own/borrow” policies also protect against starvation, but do so more flexibly than hard minima and hard maxima. Each workload is assigned an “owned” amount of resources, which is available to it when needed. A workload needing less than its owned amount releases its claim to the unneeded portion of the owned amount, making that amount available for other more needy workloads to borrow. Own/borrow policies are often used with minimum and maximum policies. However, because ownership protects against starvation, the minima can be set lower than they would be without a provision for ownership. Thus, fewer resources are wasted when a workload is actually idle or at extremely low utilization.
U.S. patent application Ser. No. 11/590,093 to Herington et al. permits polices that apply to groups of workloads as well as individual workloads. Groups can be formed by including some or all sibling containers in a container hierarchy in a group. Policies can then be applied to the group as a whole. For example, policies such as applying a group minimum or owned amounts that exceed the sum of the individual minima for a group can then be defined.
The progression of policy types described above has increased the ability of a user to define management policies that match the user's needs. The present invention provides further advances this progression.
Herein, related art is described to facilitate understanding of the invention. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art.